interface _CO_ {
    /**
     * 判断是否包含某个值
     * @param obj 对象
     * @param value 属性值
     * @param equalConfig <undefined> 匹配配置项 @see _CU_.isEqual
     * @returns true: 包含该属性值; false: 不包含该属性值;
     */
    hasValue(obj: object, value: any, equalConfig?: { converter?: Tstring_converters, sames?: Array<string> }): boolean;
}
{
    Object.defineProperty(_CO_.prototype, 'hasValue', {
        writable: false,
        configurable: false,
        enumerable: false,
        value: function (obj: any, value: any, equalConfig: any) {
            if (equalConfig) {
                for (const key in obj) {
                    if (Object.prototype.hasOwnProperty.call(obj, key)) {
                        if (U.isEqual(value, obj[key], equalConfig.converter, equalConfig.sames)) { return true; }
                    }
                }
            } else {
                for (const key in obj) {
                    if (Object.prototype.hasOwnProperty.call(obj, key)) {
                        if (value === obj[key]) { return true; }
                    }
                }
            }
            return false;
        }
    });
}
